package conexionBaseDatos;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Davo
 */
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;

public class MostrarResultadosConsulta extends JFrame {

    // controlador JDBC y URL de la base de datos
    static final String CONTROLADOR_JDBC = "com.mysql.jdbc.Driver";
    static final String URL_BASEDEDATOS = "jdbc:mysql://localhost/veterinaria?user=root&password=tata3081";
    // la consulta predeterminada recupera todos los datos de la tabla autores
    private ModeloTablaResultados modeloTabla;
    private JTextArea areaConsulta;

    // crear objeto ModeloTablaResultados y GUI
    public void MostrarResultadosConsulta(String rut, String nombre_animal) {

        String CONSULTA_PREDETERMINADA = "select p.nombre, p.ap_paterno, p.ap_materno, a.nombre_animal,"
                + " t.descripcion,t.fecha_inicio, t.fecha_termino from propietario p inner join animal a "
                + "on (p.cod_consulta = a.cod_consulta) inner join registro r on (a.cod_consulta = r.cod_consulta)"
                + "inner join tratamiento t on (r.cod_consulta = t.cod_consulta)"
                + "where p.rut = '" + rut + "' and a.nombre_animal = '" + nombre_animal + "'"
                + "order by p.nombre;";

        // crear objeto ModeloTablaResultados y mostrar tabla de la base de datos
        try {
            // crear objeto TableModel para los resultados del a consulta SELECT * FROM autores
            modeloTabla = new ModeloTablaResultados(CONTROLADOR_JDBC, URL_BASEDEDATOS,
                    CONSULTA_PREDETERMINADA);
            JTable tablaResultados = new JTable(modeloTabla);
            getContentPane().setLayout(new BorderLayout());
            getContentPane().add(new JScrollPane(tablaResultados), BorderLayout.CENTER);

            // establecer tamaño de ventana y mostrarla en pantalla

            setSize(800, 200);
            setVisible(true);
            setLocationRelativeTo(null);


        } // fin de bloque try
        // atrapar la excepción ClassNotFoundException lanzada por el
        // objeto ModeloTablaResultados si no se encuentra el controlador de la base de datos
        catch (ClassNotFoundException claseNoEncontrada) {
            JOptionPane.showMessageDialog(null,
                    "No se encontro el controlador de la base de datos", "No se encontro el controlador",
                    JOptionPane.ERROR_MESSAGE);
            System.exit(1);   // terminar la aplicación
        } // fin de bloque catch
        // atrapar la excepción SQLException lanzada por el objeto ModeloTablaResultados
        // si ocurren problemas al establecer la conexión a la base de datos
        // y realizar la consulta en la misma
        catch (SQLException excepcionSQL) {
            JOptionPane.showMessageDialog(null, excepcionSQL.getMessage(),
                    "Error en la base de datos", JOptionPane.ERROR_MESSAGE);
            // asegurar que la conexión a la base de datos esté cerrada
            modeloTabla.desconectarDeLaBaseDeDatos();
            System.exit(1);   // terminar la aplicación
        }
        // desechar la ventana cuando el usuario salga de la aplicación
        // (esta opción sobrescribe a la opción predeterminada de HIDE_ON_CLOSE)
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);

        // asegurar que la conexión a la base de datos esté cerrada cuando el usuario salga de la aplicación
        addWindowListener(
                new WindowAdapter() {
                    // desconectarse de la base de datos y salir cuando se haya cerrado la ventana

                    @Override
                    public void windowClosed(WindowEvent evento) {
                        modeloTabla.desconectarDeLaBaseDeDatos();
                        System.exit(0);
                    }
                });
    }  // fin del constructor de MostrarResultadosConsulta

    public void mostrarTodosLosClientes() {

        String CONSULTA_PREDETERMINADA = "SELECT * FROM propietario";

        // crear objeto ModeloTablaResultados y mostrar tabla de la base de datos
        try {
            // crear objeto TableModel para los resultados del a consulta SELECT * FROM autores
            modeloTabla = new ModeloTablaResultados(CONTROLADOR_JDBC, URL_BASEDEDATOS,
                    CONSULTA_PREDETERMINADA);
            JTable tablaResultados = new JTable(modeloTabla);

            getContentPane().setLayout(new BorderLayout());
            getContentPane().add(new JScrollPane(tablaResultados), BorderLayout.CENTER);

            // establecer tamaño de ventana y mostrarla en pantalla
            setSize(800, 200);
            setVisible(true);
            setLocationRelativeTo(null);
        } // fin de bloque try
        // atrapar la excepción ClassNotFoundException lanzada por el
        // objeto ModeloTablaResultados si no se encuentra el controlador de la base de datos
        catch (ClassNotFoundException claseNoEncontrada) {
            JOptionPane.showMessageDialog(null,
                    "No se encontro el controlador de la base de datos", "No se encontro el controlador",
                    JOptionPane.ERROR_MESSAGE);
            System.exit(1);   // terminar la aplicación
        } // fin de bloque catch
        // atrapar la excepción SQLException lanzada por el objeto ModeloTablaResultados
        // si ocurren problemas al establecer la conexión a la base de datos
        // y realizar la consulta en la misma
        catch (SQLException excepcionSQL) {
            JOptionPane.showMessageDialog(null, excepcionSQL.getMessage(),
                    "Error en la base de datos", JOptionPane.ERROR_MESSAGE);
            // asegurar que la conexión a la base de datos esté cerrada
            modeloTabla.desconectarDeLaBaseDeDatos();
            System.exit(1);   // terminar la aplicación
        }
        // desechar la ventana cuando el usuario salga de la aplicación
        // (esta opción sobrescribe a la opción predeterminada de HIDE_ON_CLOSE)
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);

        // asegurar que la conexión a la base de datos esté cerrada cuando el usuario salga de la aplicación
        addWindowListener(
                new WindowAdapter() {
                    // desconectarse de la base de datos y salir cuando se haya cerrado la ventana

                    public void windowClosed(WindowEvent evento) {
                        modeloTabla.desconectarDeLaBaseDeDatos();
                        System.exit(0);
                    }
                });
    }

    public void mostrarTodosLosPacientes() {

        String CONSULTA_PREDETERMINADA = "SELECT * FROM animal";

        // crear objeto ModeloTablaResultados y mostrar tabla de la base de datos
        try {
            // crear objeto TableModel para los resultados del a consulta SELECT * FROM autores
            modeloTabla = new ModeloTablaResultados(CONTROLADOR_JDBC, URL_BASEDEDATOS,
                    CONSULTA_PREDETERMINADA);
            JTable tablaResultados = new JTable(modeloTabla);

            getContentPane().setLayout(new BorderLayout());
            getContentPane().add(new JScrollPane(tablaResultados), BorderLayout.CENTER);

            // establecer tamaño de ventana y mostrarla en pantalla

            setSize(800, 200);
            setVisible(true);
            setLocationRelativeTo(null);
        } // fin de bloque try
        // atrapar la excepción ClassNotFoundException lanzada por el
        // objeto ModeloTablaResultados si no se encuentra el controlador de la base de datos
        catch (ClassNotFoundException claseNoEncontrada) {
            JOptionPane.showMessageDialog(null,
                    "No se encontro el controlador de la base de datos", "No se encontro el controlador",
                    JOptionPane.ERROR_MESSAGE);
            System.exit(1);   // terminar la aplicación
        } // fin de bloque catch
        // atrapar la excepción SQLException lanzada por el objeto ModeloTablaResultados
        // si ocurren problemas al establecer la conexión a la base de datos
        // y realizar la consulta en la misma
        catch (SQLException excepcionSQL) {
            JOptionPane.showMessageDialog(null, excepcionSQL.getMessage(),
                    "Error en la base de datos", JOptionPane.ERROR_MESSAGE);
            // asegurar que la conexión a la base de datos esté cerrada
            modeloTabla.desconectarDeLaBaseDeDatos();
            System.exit(1);   // terminar la aplicación
        }
        // desechar la ventana cuando el usuario salga de la aplicación
        // (esta opción sobrescribe a la opción predeterminada de HIDE_ON_CLOSE)
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);

        // asegurar que la conexión a la base de datos esté cerrada cuando el usuario salga de la aplicación
        addWindowListener(
                new WindowAdapter() {
                    // desconectarse de la base de datos y salir cuando se haya cerrado la ventana

                    public void windowClosed(WindowEvent evento) {
                        modeloTabla.desconectarDeLaBaseDeDatos();
                        System.exit(0);
                    }
                });
    }

    public void mostrarUltimosControles(String rut) {

        String CONSULTA_PREDETERMINADA = "select nombre_animal, descripcion, fecha_inicio, fecha_termino, cod_consulta, cod_tratamiento from tratamiento where rut = '" + rut + "';";

        // crear objeto ModeloTablaResultados y mostrar tabla de la base de datos
        try {
            // crear objeto TableModel para los resultados del a consulta SELECT * FROM autores
            modeloTabla = new ModeloTablaResultados(CONTROLADOR_JDBC, URL_BASEDEDATOS,
                    CONSULTA_PREDETERMINADA);
            JTable tablaResultados = new JTable(modeloTabla);

            getContentPane().setLayout(new BorderLayout());
            getContentPane().add(new JScrollPane(tablaResultados), BorderLayout.CENTER);

            // establecer tamaño de ventana y mostrarla en pantalla

            setSize(800, 200);
            setVisible(true);
            setLocationRelativeTo(null);
        } // fin de bloque try
        // atrapar la excepción ClassNotFoundException lanzada por el
        // objeto ModeloTablaResultados si no se encuentra el controlador de la base de datos
        catch (ClassNotFoundException claseNoEncontrada) {
            JOptionPane.showMessageDialog(null,
                    "No se encontro el controlador de la base de datos", "No se encontro el controlador",
                    JOptionPane.ERROR_MESSAGE);
            System.exit(1);   // terminar la aplicación
        } // fin de bloque catch
        // atrapar la excepción SQLException lanzada por el objeto ModeloTablaResultados
        // si ocurren problemas al establecer la conexión a la base de datos
        // y realizar la consulta en la misma
        catch (SQLException excepcionSQL) {
            JOptionPane.showMessageDialog(null, excepcionSQL.getMessage(),
                    "Error en la base de datos", JOptionPane.ERROR_MESSAGE);
            // asegurar que la conexión a la base de datos esté cerrada
            modeloTabla.desconectarDeLaBaseDeDatos();
            System.exit(1);   // terminar la aplicación
        }
        // desechar la ventana cuando el usuario salga de la aplicación
        // (esta opción sobrescribe a la opción predeterminada de HIDE_ON_CLOSE)
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);

        // asegurar que la conexión a la base de datos esté cerrada cuando el usuario salga de la aplicación
        addWindowListener(
                new WindowAdapter() {
                    // desconectarse de la base de datos y salir cuando se haya cerrado la ventana

                    public void windowClosed(WindowEvent evento) {
                        modeloTabla.desconectarDeLaBaseDeDatos();
                        System.exit(0);
                    }
                });
    }
}  // fin de la clase MostrarResultadosConsulta

